// ! Iteartor 是一种接口(对象的一个属性),为各种不同的数据结构提供统一的访问机制
// ! 遍历操作

// 声明一个数组
let color = ['green', 'blue', 'red', 'yellow'];

// 使用for...of遍历数组
for (let v of color) {
  // green
  // blue
  // red
  // yellow
  console.log(v);
}

// ?创建一个指针对象,指向当前数据结构的起始位置
// ?第一次调用对象的next方法,指针自动指向数据结构的第一个成员
// ?接下来不断调用next方法,指针一直往后移动移动,直到只想最后一个成员
// ?每调用next方法返回一个包含value和done属性的对象
console.log(color); //Symbol(Symbol.iterator): ƒ values()
let iterator = color[Symbol.iterator]();
console.log(iterator); //Array Iterator {}    next: ƒ next()
console.log(iterator.next()); //{value: 'green', done: false}
console.log(iterator.next()); //{value: 'blue', done: false}
console.log(iterator.next()); //{value: 'red', done: false}
console.log(iterator.next()); //{value: 'yellow', done: false}
console.log(iterator.next()); //{value: 'undefined', done: true}



